blktap: Add fallback code to blktap for missing poll-on-aio support.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 19 Jun 2007 15:32:28 +0000 (16:32 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 19 Jun 2007 15:32:28 +0000 (16:32 +0100)
commitbdb957f876240841ac8343e0cb06eac31d05dc14
treea5e1e7f513cdd289d81688c8df261fffd4200bdd
parent477ac069bc9607e5f0f405d4579440a740712ed3
blktap: Add fallback code to blktap for missing poll-on-aio support.

blktap requires a xen specific kernel AIO ABI which has been vetoed by
upstream in favour of another approach. Rather than include this ABI,
Fedora has been carrying a patch which makes tap:aio use a thread to
poll for aio events and notify the main thread via a pipe.

The upstream approach of allowing io_getevents() poll normal file
descriptors via epoll is still progressing:
 http://lkml.org/lkml/2007/1/3/16

but when that does make it upstream, blktap will require significant
re-working to use that approach.

In the meantime, here's a patch which uses the poll-in-a-thread
approach only if AIO poll support isn't available. It also hides the
details behind a simple abstraction and makes both tap:aio and
tap:qcow use it.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
tools/blktap/drivers/Makefile
tools/blktap/drivers/block-aio.c
tools/blktap/drivers/block-qcow.c
tools/blktap/drivers/tapaio.c [new file with mode: 0644]
tools/blktap/drivers/tapaio.h [new file with mode: 0644]